#!/bin/bash
###############################################################################
# @用例ID: 20230525-154056-556766021
# @用例名称: kbd-test
# @用例级别: 3
# @用例标签:
# @用例类型: 功能
###############################################################################
[ -z "$TST_TS_TOPDIR" ] && {
    TST_TS_TOPDIR="$(realpath "$(dirname "$0")/..")"
    export TST_TS_TOPDIR
}
source "${TST_TS_TOPDIR}/tst_common/lib/common.sh" || exit 1
###############################################################################

g_tmpdir="$(mktemp -d)"
  
tc_setup() {
    msg "this is tc_setup"
    # @预置条件：kbd已提前安装

    assert_true command -v loadkeys
    assert_true command -v setfont
    assert_true command -v vlock
    return 0
}

do_test() {
    msg "this is do_test"
    
    # @测试步骤:1: 测试键盘布局加载功能
    # @预期结果:1: 键盘布局成功加载
    assert_true sudo loadkeys /usr/share/kbd/keymaps/us.map.gz
    # @测试步骤:2: 测试终端设置功能
    # @预期结果:2: 终端设置成功
   assert_true sudo setfont /usr/share/kbd/consolefonts/ter-116n.psf.gz
    # @测试步骤:3: 测试控制台屏幕保存和恢复功能
    # @预期结果:3: 控制台屏幕成功保存和恢复
    assert_true sudo vlock
    assert_true sudo vlock -u
   
        

    return 0
}



tc_teardown() {
    msg "this is tc_teardown"
    # 恢复键盘布局到默认值
    setxkbmap us
    assert_true [ $? -eq 0 ]
    # 恢复终端设置到默认值
    reset
    assert_true [ $? -eq 0 ]
    # 恢复控制台屏幕到默认状态
    clear
    assert_true [ $? -eq 0 ]
    rm -rfv "$g_tmpdir" || return 1
    return 0
}


###############################################################################
tst_main "$@"
###############################################################################
